﻿// owner 蒋家伟

#pragma once
#include "Office_home.h"

namespace jsdk
{
    // Excel 操作基类
    class OFFICE_EXPORT IExcelReader
    {
    public:
        virtual ~IExcelReader() {}

        // 创建一个通过excel 文件地址创建一个Excel对象
        static OwnerPtr<IExcelReader> create(const std::wstring& fileName);

        /// \ brief  打开表格单元
        /// \ in sheetIndex 表格下表，第几个表格
        virtual bool openSheet(uint64_t sheetIndex) = 0;

        /// \ brief 获取openSheet对应表格的单元格数据
        /// \ note : 如果打开失败则无法获取对应的数据
        /// \ in 通过行列值获取对应的单元格数据指针，如果越界则为空
        virtual const std::wstring* getCellData(uint64_t row, uint64_t col) const = 0;

        /// \ brief 获取openSheet对象的行数量
        /// \ return sheet的行数
        virtual uint64_t getSheetRowCount() const = 0;

        /// \ brief 获取openSheet对象的行数量
        /// \ return sheet的列数
        virtual uint64_t getSheetColCount() const = 0;
    };
}